package pta.test10.Throw与Throws;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        double[] arr = new double[n];
        for (int i = 0; i < n; i++) {
            arr[i] = scanner.nextDouble();
        }
        while(scanner.hasNextInt()){
                int begin = scanner.nextInt();
                int end = scanner.nextInt();
            try {
                System.out.println(ArrayUtils.findMax(arr, begin, end));
            }catch (Exception e){
                System.out.println(e);
            }
        }
        try {
            System.out.println(ArrayUtils.class.getDeclaredMethod("findMax", double[].class,int.class,int.class));
        } catch (Exception e1) {
        }
    }
}
class ArrayUtils {
    public static double findMax(double[] arr, int begin, int end) throws IllegalArgumentException {
        if (begin >= end) {
            throw new IllegalArgumentException("begin:" + begin + " >= end:" + end);
        }else if (begin < 0){
            throw new IllegalArgumentException("begin:" + begin + " < 0");
        }else if (end > arr.length){
            throw new IllegalArgumentException("end:" + end + " > arr.length");
        }
        double max = arr[begin];
        for (int i = begin; i < end; i++) {
            max = Math.max(max, arr[i]);
        }
        return max;
    }
}

